<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        
        //promise 是一个构造函数，使用的时候需要实例化，接收一个回调函数作为参数，这个回调函数是同步的，只是用来处理异步代码
        const p1 = new Promise((resolve,reject)=>{//回调函数中接收两个形参，这两个参数都是函数，调用第一个函数就把promise实例的状态改为成功（fulfilled），调用第二个函数就会把promise实例的状态改为失败（rejected），promise实例默认是pending状态，只能从pending状态改为其他状态
            
            try{
                console.log('开始请求A')
            setTimeout(()=>{//把异步代码放到回调函数里
                console.log('请求A成功')
                resolve('okkk') //resolve和reject两个函数的调用只能改变promise实例的状态，不能中断当前函数的继续运行。resolve和reject两个函数接收的实参，就是成功或者是失败的信息，会放在promise实例的promiseResult属性上

            },2000)
        }catch(e){//catch接收的e是错误对象
            reject(e.message)//e.message是错误信息
        }

        })



    </script>
    
</body>
</html>